#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

int f=0;

int fd(int a,vector<int>& fa){
    if(fa[a]==a)return a;
    else return fa[a]=fd(fa[a],fa);
}

void unite(int a,int b,vector<int>& fa,vector<int>& si,vector<int>& ru){
    int c=fd(a,fa);
    int d=fd(b,fa);
    if(c!=d){
        fa[c]=d;
        si[d]+=si[c];
        ru[d]+=ru[c];
    }
}

void bfs(int u,vector<vector<int>>& adj,vector<int>& fa,vector<int>& si){
    queue<int> q;
    unordered_set<int> st;
    u=fd(u,fa);
    q.push(u);
    st.insert(u);
    while(!q.empty()){
        int c=q.front();
        q.pop();
        f+=si[c];
        for(int x:adj[c]){
            int temp=fd(x,fa);
            if(!st.count(temp)){
                q.push(temp);
                st.insert(temp);
            }
        }
    }
}

void solve(){
    int n;
    f=0;
    cin>>n;
    vector<int> wei(n+5);
    vector<int> fa(n+5);
    vector<int> si(n+5,1);
    vector<int> ru(n+5,0);
    vector<pair<int,int>> edge;
    vector<vector<int>> adj(n+5);
    
    for(int i=1;i<=n;i++){
        fa[i]=i;
    }
    
    for(int i=1;i<=n;i++){
        cin>>wei[i];
    }
    
    for(int i=0;i<n-1;i++){
        int u,v;
        cin>>u>>v;
        edge.push_back({u,v});
        if(wei[u]<=2*wei[v]&&wei[v]<=2*wei[u]){
            unite(u,v,fa,si,ru);
        }
    }
    
    for(auto& e:edge){
        int u=e.first, v=e.second;
        int fu=fd(u,fa), fv=fd(v,fa);
        if(fu!=fv){
            if(wei[u]<=2*wei[v] && wei[v]>2*wei[u]){
                adj[fu].push_back(fv);
                ru[fv]++;
            }
            else if(wei[v]<=2*wei[u] && wei[u]>2*wei[v]){
                adj[fv].push_back(fu);
                ru[fu]++;
            }
        }
    }
    
    int root=-1;
    for(int i=1;i<=n;i++){
        int t=fd(i,fa);
        if(ru[t]==0 && t==i){
            root=t;
            break;
        }
    }
    
    if(root==-1){
        cout<<0<<'\n';
        return;
    }
    
    bfs(root,adj,fa,si);
    cout<<(f==n?si[root]:0)<<'\n';
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int _=1;
    cin>>_;
    while(_--){
        solve();
    }
    return 0;
}